package com.saver.core.persistence;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.saver.core.domain.Parametro;
import com.saver.core.persistence.table.ParametroTable;
import com.saver.core.util.Constantes;

public class ParametroSQLite extends DatabaseHelper {
	
	private static final String TAG = "MonedaSQLite";
	private static final String[] COLUMNAS = new String []{
		ParametroTable.COL_PROPIEDAD, ParametroTable.COL_VALOR};

	public ParametroSQLite (Context context) {
		super(context, Constantes.DATABASE_NAME, null, Constantes.DATABASE_VERSION);
		//crear parametro de acepto de condiciones
		
	}
	
	public Parametro buscarPorPropiedad (String propiedad) {
		Log.i(TAG, "buscarPorPropiedad: " + propiedad);
		
		Parametro parametro = null;
		if (propiedad != null) {
			SQLiteDatabase db = getReadableDatabase();
			Cursor cursor = db.query(ParametroTable.TABLA, COLUMNAS, 
					ParametroTable.COL_PROPIEDAD + "=?", 
					new String[]{propiedad}, null, null, null);
			
			if (cursor.moveToNext()) {
				parametro = crearParametro(cursor);
			}
			
			db.close();
		}
		return parametro;
	}

	private Parametro crearParametro(Cursor cursor) {
		Parametro moneda = new Parametro();
		moneda.setPropiedad(cursor.getString(0));
		moneda.setValor(cursor.getString(1));
		return moneda;
	}
	
	public void guardar (Parametro parametro) {
		SQLiteDatabase db = getWritableDatabase();
		
		ContentValues values = new ContentValues();
		values.put(ParametroTable.COL_PROPIEDAD, parametro.getPropiedad());
		values.put(ParametroTable.COL_VALOR, parametro.getValor());
		
		db.insert(ParametroTable.TABLA, null, values);
		db.close();
		Log.d(TAG, "parametro guardado");
	}
	
	public void actualizar (Parametro parametro) {
		Log.d(TAG, "actualizar parametro");
		
		SQLiteDatabase db = getWritableDatabase();
		
		ContentValues values = new ContentValues();
		values.put(ParametroTable.COL_VALOR, parametro.getValor());
		db.update(ParametroTable.TABLA, values, ParametroTable.COL_PROPIEDAD+ "=?", 
				new String[]{parametro.getPropiedad()});
		
		db.close();
		Log.d(TAG, "parametro actuaizado");
	}
	
}
